/**
 * 
 */
package ar.com.gepp.torneo.entidades.impl;

import java.util.ArrayList;
import java.util.List;

/**
 * @author gpidote
 * 
 */
public class Fixture {
	Integer idFixture;
	List<Fecha> fechas = new ArrayList<Fecha>(0);
	Integer actual;

	public Fixture(){
		setActual(0);
	}
	
	/**
	 * 
	 * @return
	 */
	public Boolean iniciar() {
		if (getFechaActual() != null) {
			if (getActual() > 0) {
				return false;
			} else {
				setActual(0);
				return true;
			}
		} else {
			setActual(0);
			return true;
		}
	}

	/**
	 * Juega la fecha actual
	 * @param posiciones
	 * @return
	 */
	public Boolean jugarFechaActual() {
		try {
			Fecha fecha = fechas.get(getActual());
			fecha.jugar();
			/*
			 * for (Partido partido : fecha.getPartidos()) {
			 * 
			 * Equipo local = partido.getLocal(); Equipo visitante =
			 * partido.getVisitante();
			 * 
			 * partido.setGolLocal(motor.getValor(local.getValores()));
			 * partido.setGolVisitante(motor.getValor(visitante.getValores()));
			 * 
			 * 
			 * for (Posicion posicion : posiciones) { if
			 * (posicion.getEquipo().getIdEquipo() == local.getIdEquipo()) {
			 * posicion.sumarPartido(partido.getPuntosLocal(),
			 * partido.getGolLocal(), partido.getGolVisitante()); } if
			 * (posicion.getEquipo().getIdEquipo() == visitante.getIdEquipo()) {
			 * posicion.sumarPartido(partido.getPuntosVisitante(),
			 * partido.getGolVisitante(), partido.getGolLocal()); } }
			 * partido.setJugado(true); }
			 */
			setActual(getActual() + 1);
			return true;
		} catch (Exception e) {
			return false;
		}
	}

	public Boolean finalized() {
		if (getActual().intValue() >= getFechas().size()) {
			return true;
		} else {
			return false;
		}
	}

	public List<Fecha> getFechas() {
		return fechas;
	}

	public void setFechas(List<Fecha> fechas) {
		this.fechas = fechas;
	}

	public void addFecha(Fecha fecha) {
		fechas.add(fecha);
	}

	public Fecha getFecha(int num) {
		return fechas.get(num);
	}

	public Integer getIdFixture() {
		return idFixture;
	}

	public void setIdFixture(Integer idFixture) {
		this.idFixture = idFixture;
	}

	public Integer getActual() {
		return actual;
	}

	public void setActual(Integer actual) {
		this.actual = actual;
	}

	public Fecha getFechaActual() {
		return fechas.get(getActual());
	}
}